package com.tianyu.service.base.api;

import com.alibaba.fastjson2.JSONObject;
import com.tianyu.model.ro.ServiceRo;

/**********************************
 * @Author YSW
 * @Description
 * @Date 2024/7/15 - 18:46
 **********************************/

public interface CommandReceive {

    /**
     * 获取机场遥测信息
     *
     * @return 执行结果
     */
    default ServiceRo<?> dockLedgerInfo(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 获取飞行器遥测信息
     *
     * @return 执行结果
     */
    default ServiceRo<?> aircraftLedgerInfo(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 获取航线信息
     *
     * @return 执行结果
     */
    default ServiceRo<?> flightLines(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 加载机库摄像头直播画面/推流
     *
     * @return 执行结果
     */
    default ServiceRo<?> dockCameraLive(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 加载飞行器摄像头直播画面/推流
     *
     * @return 执行结果
     */
    default ServiceRo<?> aircraftCameraLive(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 一键起飞
     *
     * @return 执行结果
     */
    default ServiceRo<?> takeoffToPoint(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 指点飞行
     *
     * @return 执行结果
     */
    default ServiceRo<?> flyToPoint(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 任务飞行
     *
     * @return 执行结果
     */
    default ServiceRo<?> flyTask(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 一键悬停
     *
     * @return 执行结果
     */
    default ServiceRo<?> flyPause(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 继续飞行
     *
     * @return 执行结果
     */
    default ServiceRo<?> flyRecovery(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 一键返航
     *
     * @return 执行结果
     */
    default ServiceRo<?> returnHome(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 云台镜头重置
     *
     * @return 执行结果
     */
    default ServiceRo<?> gimbalReset(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 云台变焦
     *
     * @return 执行结果
     */
    default ServiceRo<?> cameraFocalLengthSet(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 云台镜头切换
     *
     * @return 执行结果
     */
    default ServiceRo<?> liveLensChange(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 云台镜头清晰度切换
     *
     * @return 执行结果
     */
    default ServiceRo<?> liveSetQuality(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 云台视觉中心点切换
     *
     * @return 执行结果
     */
    default ServiceRo<?> cameraAim(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

    /**
     * 手控摇杆操作
     *
     * @return 执行结果
     */
    default ServiceRo<?> droneControl(JSONObject params) {
        return ServiceRo.resultFailed("功能暂未实现...");
    }

}
